---
title:        'Bitmap Converter 2.0'
description:  'Convert images to files for Marlin 2.0.'
category:     [ tools ]
---

<script type="text/javascript" src="./converter2.js"></script>

<div class="container" role="main">
  <div class="row">
    <div class="col-lg-12" id="bitmap-converter">
      <h1>Bitmap Converter</h1>
      <p>Convert a JPEG or PNG image file to a <a href="//github.com/olikraus/u8glib">U8Glib</a>-compatible C/C++ array for monochrome graphical LCDs in Marlin 2.0. By default dark colors produce "on" pixels and light colors are transparent.</p>
      <p>If this tool doesn't work in your browser, use the server-side tool <a href="//www.digole.com/tools/PicturetoC_Hex_converter.php">at digole.com</a>.</p>
      <div class="file-selector">
        <canvas id="preview-sm" width="32" height="32"></canvas>
        <canvas id="preview-lg" width="32" height="32"></canvas>
        <div id="err-box"></div>
        <input type="text" id="pasted" size="30" autocomplete="off" />
        <input type="file" id="file-input" accept="image/*" />
        <div id="options1">
          <select id="bitmap-type" name="bitmap-type">
            <option value="boot">Boot Screen</option>
            <option value="stat1">Status Screen 1.1</option>
            <option value="stat2">Status Screen 2.0</option>
            <option value="bits" selected="selected">Generic Bitmap</option>
          </select>
          &nbsp;&nbsp;&nbsp;
          <label id="liton-lbl" title="Use light pixels from the source image.">&nbsp;&nbsp;<input type="checkbox" id="lit-on" />&nbsp;Light</label>
          <label title="Invert the output bits.">&nbsp;&nbsp;<input type="checkbox" id="inv-on" />&nbsp;Invert</label>
          &nbsp;&nbsp;&nbsp;
          <label title="Output in Binary (not Hex) format.">&nbsp;&nbsp;<input type="checkbox" id="bin-on" />&nbsp;Binary</label>
          <label title="Include an ASCII representation.">&nbsp;&nbsp;<input type="checkbox" id="ascii-on" checked="checked" />&nbsp;ASCII Art</label>
          <label title="Use UTF8 blocks instead of ASCII.">&nbsp;&nbsp;<input type="checkbox" id="skinny-on" />&nbsp;Narrow</label>
        </div>
        <div id="options2">
          <label title="Right-justify the image.">&nbsp;&nbsp;<input type="checkbox" id="rj-on" />&nbsp;&gt;&gt;</label>
          <label class="tbd" title="Overlay a bed image.">&nbsp;&nbsp;<input type="checkbox" id="bed-on" />&nbsp;Bed</label>
          <label class="tbd" title="Overlay a fan image.">&nbsp;&nbsp;<input type="checkbox" id="fan-on" />&nbsp;Fan</label>
          <label class="tbd">&nbsp;&nbsp;Nozzles:
            <select name="hotends" value="1">
              <option value="0">0</option>
              <option value="1">1</option>
              <option value="2">2</option>
              <option value="3">3</option>
              <option value="4">4</option>
              <option value="5">5</option>
            </select>
          </label>
        </div>
        <div id="options3">
          <label title="Include a fan image.">&nbsp;&nbsp;<input type="checkbox" id="fan-on-2" />&nbsp;Fan</label>
        </div>
      </div>
      <div id="cpp-container">
        <p>Copy the following code into your <span id="where">program</span>:</p>
        <textarea id="output" cols="80" rows="4" editable="false" wrap="off" readonly="readonly">Select or drop an image above.</textarea>
      </div>
    </div>
  </div>
</div>
